package com.example.test;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

public class AssetDatabaseOpenHelper  {

	 private Context context;
	  
	 public AssetDatabaseOpenHelper(Context context) {
	 this.context = context;
	 }
	  
	 public SQLiteDatabase openDatabase() {
	 File dbFile = context.getDatabasePath(ConfigLib.DATABASE_NAME);
	  
	 if (dbFile.exists()) {
	 try {
	 copyDatabase(dbFile);
	 } catch (IOException e) {
	 throw new RuntimeException("Error creating source database", e);
	 }
	 }
	  
	 return SQLiteDatabase.openDatabase(dbFile.getPath(), null, SQLiteDatabase.OPEN_READONLY);
	 }
	  
	 private void copyDatabase(File dbFile) throws IOException {
	 InputStream is = context.getAssets().open(ConfigLib.DATABASE_NAME);
	 OutputStream os = new FileOutputStream(dbFile);
	  
	 byte[] buffer = new byte[1024];
	 while (is.read(buffer) > 0) {
	 os.write(buffer);
	 }
	  
	 os.flush();
	 os.close();
	 is.close();
	 }
}
